/*
 * List.h
 *
 *  Created on: 23/05/2010
 *      Author: prodrig
 */
#include "ICollection.h"
#include "IIterator.h"
#include "Node.h"
#include <string>

using std::string;

#ifndef LIST_HH_
#define LIST_HH_

class List: public ICollection {
private:
	Node * first;
	int currentSize;
public:
	List();
	virtual void add(ICollectible *);
	virtual void remove(ICollectible *);
	virtual bool member(ICollectible *);
	virtual bool isEmpty();
	virtual IIterator* getIterator();
	virtual int size();
	virtual string toString();
	virtual bool same(ICollectible *);
	virtual ~List();
};

#endif /* LIST_HH_ */
